home *** CD-ROM | disk | FTP | other *** search
/ PC Home 138 / PC Home issue 138.iso / Software / Essentials / Netscape / nim.xpi / bin / chrome / aim.jar / content / aim / chatPanel.js < prev    next >
Encoding:
JavaScript  |  2002-06-02  |  5.7 KB  |  214 lines

  1. /*
  2.  
  3. ChatPanel.js
  4.  
  5.  
  6. */
  7.  
  8. //create template for user management.
  9.  
  10. function chatPanelObj(){
  11.  
  12.     this.chatPanelAddScreenName = chatPanelAddScreenName;
  13.     this.chatPanelRemoveScreenName = chatPanelRemoveScreenName;
  14.     this.chatPanelUpdateScreenName = chatPanelUpdateScreenName;
  15.     
  16.     return this;
  17. }
  18.  
  19. myChatPanel = new chatPanelObj()
  20.  
  21.  
  22. function chatPanelOnWinLoad(){
  23.     
  24.     try{
  25.     
  26.     if(parent.myManager && parent.chatPanelLoaded){
  27.         // dump("chatPanelOnWinLoad - parent.myManager defined \n")
  28.         for(z=0;z<parent.myManager.members.length;z++){
  29.             chatPanelUpdateScreenName(parent.myManager.members[z].screenName,parent.myManager.members[z].status)
  30.         }
  31.     
  32.     }
  33.     else{
  34.         //dump("chatPanelOnWinLoad -parent.myManager not defined \n")
  35.     }
  36.     }
  37.     catch (e){
  38.         //dump("chatPanelOnWinLoad : couldnt find parent.myManager (caught exception) \n")
  39.     }
  40.     
  41.     parent.chatPanelLoaded=true;
  42. }
  43.  
  44.  
  45. function chatPanelAddScreenName(screenName,initialState){
  46.     //dump('adding:'+screenName+"\n\n")
  47.  
  48.     var listbox = document.getElementById("chatPanelTree");
  49.  
  50.     listitem=document.createElement("listitem");
  51.     listitem.setAttribute('label',screenName)
  52.     listitem.setAttribute('class',initialState);
  53.     
  54.     //dump("chatPanelAddScreenName adding class value of"+initialState);
  55.     
  56.     listbox.appendChild(listitem)
  57.     
  58.     top.updateMemberCount();
  59.     //top.updateStatus(screenName+" > "+initialState)
  60.     top.chatContentStatusChange(screenName,initialState)
  61.  
  62.     if(listbox.childNodes.length == 1){
  63.         //Im the first person here! Select me
  64.         document.getElementById("chatPanelTree").selectedIndex=0;
  65.     }else{
  66.         //the length of the tree is more than one
  67.     }
  68.  
  69. }
  70.  
  71.  
  72. function chatPanelRemoveScreenName(screenName){
  73.     //dump('removing:'+screenName+'\n\n')
  74.         var listbox  = document.getElementById("chatPanelTree");
  75.         
  76.         var listitems = listbox.getElementsByTagName("listitem");
  77.         var theDoomedScreenName = null;
  78.         var theDoomedScreenNameWasSelected = false;
  79.         
  80.         for (k=0; k < listitems.length; k++){
  81.             if (listitems[k].getAttribute("label").toLowerCase() == screenName.toLowerCase())
  82.                 theDoomedScreenName = listitems[k];
  83.         }
  84.  
  85.         if(theDoomedScreenName != null){
  86.             //dump("***the doomed screen name selected value: ["+theDoomedScreenName.selected+"]\n");
  87.             if(theDoomedScreenName.selected){
  88.                 theDoomedScreenNameWasSelected = true;
  89.             }
  90.             listbox.removeChild(theDoomedScreenName)
  91.             top.updateMemberCount();
  92.             //top.updateStatus(screenName+"has left")
  93.             top.chatContentStatusChange(screenName,"has left")
  94.  
  95.         }
  96.         else{
  97.             //dump("chatPanelRemoveScreenName: cannot remove "+screenName+"\n");
  98.         }
  99.         
  100.         if (theDoomedScreenNameWasSelected){
  101.             //it was selected - reset selection now 
  102.             //dont need to check for 0 because if it's zero - you'd not be in the chatroom yourself
  103.             listbox.selectedIndex= 0 ;
  104.  
  105.         }
  106.  
  107. }
  108.  
  109. //update the status of a given screenname
  110.  
  111. function chatPanelUpdateScreenName(screenName,snStatus){
  112.     //dump("updating status of "+screenName+" to "+snStatus+"\n");
  113.     //var searchingSN = screenName.toLowerCase()
  114.     //var theSNtoUpdate = document.getElementById(searchingSN)
  115.   var theTreeChildren = document.getElementsByTagName("listitem");
  116.     var theSNtoUpdate= null;
  117.     for (j=0; j<theTreeChildren.length; j++){
  118.         if(aimIsSameScreenName(theTreeChildren.item(j).getAttribute("label"), screenName)){
  119.             theSNtoUpdate = theTreeChildren.item(j);
  120.             //dump("ChatPanelUpdate:found the child +\n" )
  121.         }
  122.     }
  123.  
  124.  
  125.     
  126.     if(theSNtoUpdate!=null){
  127.         //dump("they already were here in some state.(invited?)\n")
  128.         theSNtoUpdate.setAttribute("class",snStatus);
  129.  
  130.         // in case its formatting has changed
  131.         theSNtoUpdate.setAttribute("label", screenName);
  132.         top.updateMemberCount();
  133.  
  134.         top.chatContentStatusChange(screenName,snStatus)
  135.  
  136.     }
  137.     else{
  138.         //dump(" they joined without being invited? \n")
  139.         chatPanelAddScreenName(screenName,snStatus)
  140.     }
  141.  
  142. }
  143.  
  144.  
  145. function cmdUserSelected(e){
  146.     document.getElementById("userSelected").setAttribute("disabled","false")
  147.     
  148.     var theTree = document.getElementById("chatPanelTree")
  149.     if(theTree.selectedItems.length >=1 ){
  150.         document.getElementById("userSelected").setAttribute("selectedScreenName",theTree.selectedItems[0].getAttribute("label"))
  151.         document.getElementById("userSelected").setAttribute("disabled","false");
  152.  
  153.     }
  154.     if(theTree.selectedItems.length==0){
  155.         document.getElementById("userSelected").setAttribute("disabled","true")
  156.         document.getElementById("userSelected").setAttribute("selectedScreenName",'')
  157.  
  158.     }
  159.  
  160.     //dump("Currently Selected User is: "+document.getElementById("userSelected").getAttribute("selectedScreenName")+"\n");
  161. }
  162.  
  163. function cmdUserBlurred(e){
  164.     //document.getElementById("userSelected").setAttribute("disabled","true")
  165.     //    dump("userBlurred:"+e.target.tagName+"\n")
  166.  
  167. }
  168.  
  169.  
  170.  
  171. function cmdSendIMFromChat(){
  172.     var theTree = document.getElementById("chatPanelTree")
  173.     if(theTree.selectedItems.length>=1){
  174.         var selectedScreenName = cmdGetSelectedScreenName(); 
  175.         aimIMInvokeIMForm(selectedScreenName);
  176.  
  177.     }
  178.     else{
  179.         aimIMInvokeIMForm(null, null);
  180.     }
  181. }
  182.  
  183. function cmdIgnoreFromChat() 
  184. {
  185.     var theTree = document.getElementById("chatPanelTree")
  186.     var i;
  187.     for (i = 0; i < theTree.selectedItems.length; i++)
  188.     {
  189.         var selectedScreenName =theTree.selectedItems[i].getAttribute("label");
  190.  
  191.         var wasIgnored = top.chatRoomObj.Ignore(selectedScreenName);
  192.         if (wasIgnored)
  193.         top.frames['chatpanel'].chatPanelUpdateScreenName(selectedScreenName, "joined");
  194.        else
  195.         top.frames['chatpanel'].chatPanelUpdateScreenName(selectedScreenName, "ignored");
  196.         
  197.     }
  198. }
  199.  
  200. function getInfoFromChat()
  201. {
  202.   return;
  203. }
  204.  
  205.  
  206. function cmdGetSelectedScreenName(){
  207.     
  208.     return document.getElementById("userSelected").getAttribute("selectedScreenName")
  209.  
  210. }
  211.  
  212.  
  213.  
  214.